package com.jia.friends.controller;

import com.jia.friends.service.FollowService;
import com.jia.sms.entity.User;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.util.List;

/**
 * (Follow)表控制层
 *
 * @author makejava
 * @since 2024-10-10 17:18:22
 */
@RestController
@RequestMapping("follow")
public class FollowController {
    /**
     * 服务对象
     */
    @Resource
    private FollowService followService;

    @PutMapping("{id}/{isFollow}")
    public ResponseEntity<Boolean> follow(@PathVariable("id") Long followUserId,
                                          @PathVariable Boolean isFollow) {
        return ResponseEntity.ok(followService.follow(followUserId, isFollow));
    }

    @GetMapping("or/not/{id}")
    public ResponseEntity<Boolean> isFollow(@PathVariable("id") Long followUserId) {
        return ResponseEntity.ok(followService.isFollow(followUserId));
    }

    @GetMapping("/common/{id}")
    public ResponseEntity<List<User>> commonFollow(@PathVariable("id") Long userId) {
        return ResponseEntity.ok(followService.commonFollow(userId));
    }

    /**
     * feed流 模式 timeline 和 智能排序（深度算法）
     * timeline 分为三种模式
     * 推模式 粉丝主动刷新拉取 拉取关注用户的内容
     * 拉模式 发布者 主动推送内容 给所有粉丝
     * 推拉结合 对于活跃粉丝 就靠发布者主动推送 对于普通粉丝 就靠粉丝主动刷新拉取
     *
     */
}

